Tableau Conference 2016 at Austin [レポート]TabPyイントロダクション:データサイエンス with Python in Tableau #data16
Tableau Conference 2016@Austinのセッション参加レポート:2本目は「TabPyイントロダクション:データサイエンス with Python in Tableau」の紹介をしていきます。
セッションの紹介文は下記の通りです。
The power and flexibility of Python are now accessible in Tableau through integration with TabPy, a local HTTP Python server. TabPy opens up a vast range of analytical capabilities in Tableau from execution of ad hoc functions to complete data science work-flows. This session will explore creating Python functions in Tableau, hosting functions in TabPy where they can be easily called, and specific data science applications for TabPy like sentiment analysis and classification. |
前のセッションが終わる前(休憩時間は30分ありますので、開始30分以上前)に会場の前に向かったのですが、そこにはすでに長蛇の列が!
そして前のセッションが終わった頃に後ろを振り返ると、さらに凄いことになっていました。。
この方がスピーカーのNathan Mannheimerさん。
左側はStaff Product ManagerのBora Beranさん。セッション終了後に、質疑応答の対応をされてました。
アジェンダ
- アドホック版、デプロイ版Python
- TabPyサーバを使う
- モデルを作成、使用する
- Tableauを使ったデータサイエンス・アプリケーション
セッションビデオ・スライド
本セッションの録画版、およびPDF版のスライドは、下記のサイトで公開されています。(※登録必要ですが無料で利用・アクセス可能)
http://tclive.tableau.com/Library/Video?vCode=BRK53875
TabPyのGitHubサイト
https://github.com/tableau/TabPy
サイト上の表記は「Tableau Python Server - Beta」になっていますね。
プレスリリース
Leverage the Power of Python in Tableau with TabPy [2016/11/04]
https://www.tableau.com/ja-jp/about/blog/2016/11/leverage-power-python-tableau-tabpy-62077
Tableauのアドバンスト・アナリティクス
ご存知の通り、Tableauには製品に統合された分析機能として「回帰」「予測」「クラスタリング」などの機能がある。
画面左上のサインカーブの例や、左下のロジスティック回帰、もっと複雑な右側のマシンラーニングの例。製品自体で様々な分析アルゴリズムの最新の状態について行くのは困難。
「予測」の例。本来は上のグラフの、赤色の部分が予測結果であるが、矢印のようにスパイクがあると、既存の予測機能はスパイクに影響されて緑のグラフようになってしまう。
Pythonは、より多くのシナリオ、より大きな柔軟性、より制御可能なアドバンスト・アナリティクスをもたらしてくれる。
アドホック版、デプロイ版Python
センチメント分析の例を見ていきます。テキストは顧客が記入した製品レビュー。
レビューの内容を、ポジティブ/ネガティブに判別して、色を付けます。
次のシートの例に移動。チャートの値はネットプロモートスコア(NPS)。
このチャートに、ZTestを使って95%の信頼区間で有意な値に色を付けた。
ZTestをアドホックな書き方で記述する。
クラスタリングのデモ。
下記のようなデータセットを用意。2種類のクラスタリングで比較を行ってみる。
ドラッグ&ドロップで適用できるTableauのK-meansのクラスタリング。比較的よく判別ができているが、一部そうでないところも見られる。
Python経由でカスタム・クラスタリング・アルゴリズムを使うと、データセットに完璧にフィットした結果が得られた。
クラスタリングのコードの内容。(アドホック版)
同じ内容を、TabPyのデプロイモデルを使って、シンプルなワンライナーのコードで書いた例。(デプロイ版)
アドホック版
デプロイ版
本来は、def ztest()のところに関数の定義を記述する。
Pythonの関数をTabPyサーバにデプロイする。
TabPyサーバを使う
モデルを作成、使用する
モデルのトレーニング用のデータセット。
採用するモデルを決定する。
トレーニング用データを使い、モデルに基いて学習させる。
「bad_loans」モデルの学習。IDEはPycharmを使ってますね。
Tableauを使ったデータサイエンス・アプリケーション
スコアを算出する。
様々な条件で実行。
最後に
以上、TabPyイントロダクションのセッションでした。
Twitterのタイムラインを見ていたところ、TabPyについて「Looks like #tableau + #python is a happy marriage!!」というツイートを見かけましたが、私も同じ意見です。TabPyもガンガン使い倒していきましょう!
なお、本レポートではTabPyの動作検証を行っておりませんが、追って試してみたいと思います。